前のページ   後のページ   目次へ

********************************

       ■■■■
     ■    ■       ■        ■
     ■           ■■■      ■■■
     ■    ■       ■        ■
       ■■■■
               〜基礎から ★ C++Programing〜
********************************

  【注意】 このマガジンは、最大化してお読みください。
       また、等角フォントでお読みください。
          (MS ゴシックなど)

********************************

 発行者      むーくん
 マガジンNO.  71(5−11)
 発行日      2001/2/20
 講読人数     2000名ぐらい
 マガジンID   0000050494
          このマガジンは、まぐまぐから配信されています。
********************************
★あいさつ★

今回は、プログラムのオンパレードです。
理解しにくいかもしれないので、自分でも書いてみた方が
よいと思います。

パズルみたいなプログラムを楽しんでください。

********************************






********************************
★目次★

  ・いろいろなfor文
  ・式を2つ指定したfor文
  ・式を省略したfor文
  ・cinを指定したfor文
  ・まとめ
  ・予告

********************************
★いろいろなfor文★

今回は、いろいろなfor文のパターンとそのサンプルを紹介します。
これを見れば、なぜfor文が一番よく使われるのか分かると思います。
大変バリエーション豊かな表現ができるのです。

********************************
★式を2つ指定したfor文★

ご存じの通りfor文は、「初期化」「条件式」「更新」の
3つを指定することができます。
基本的には、1つにつき1文なのですが、「コンマ演算子( , )」で
区切ることにより、2文以上の実行が可能です。

【サンプル】

#include<iostream>
using namespace std;

int main(){
    int i,j,total;
    for(i=1,j=100,total=0; i<j; i++,j--){
        total += (i+j);
    }
    cout << total << endl;
    return 0;
}

【解説】
  プログラムに深い意味はありません。
  i  j という2つの変数を使って、1〜100までの和を求めています。

  i は1から大きくなっていき、j は100から小さくなっていきます。
  i と j の大小関係が逆になったとき、処理は終了です。

  注目してほしいのは、式の部分です。
  「初期化」には3文、「更新」には2文指定しています。

  読みにくく、あまりよい例ではありませんが、ときには有効です。

********************************
★式を省略したfor文★

逆に、何も書かないこともできます。
その時には、省略した部分を空にします。
但し、セミコロンは省略できません。
「初期化」などの区別ができなくなるからです。

【サンプル】

#include<iostream>
using namespace std;

int main(void){
    int i, input;
    int total = 0;

    for(i=1; i<10; ){
        cout << i << " : ";
        cin >> input;
        total += i;
        if(input){
            i++;
        }
    }
    cout << total << endl;
    return 0;
}

【解説】
  ユーザーが0以外の値を入力したら、カウンタを進め、
  0を入力したときは据え置くプログラムです。
  ユーザーの入力により、
  「1+1+2+3+3+4+5+6+7+7+7+8+9+9+9+9」
  のような計算ができます。
  ユーザーインターフェースについては考慮していません。

  ここでは、「更新」の部分が省略されています。
  これにより、自動的にインクリメントが行われません。


  ちなみに前回学習したように、「条件」の部分を
  省略すると「無限ループ」になります。

********************************
★cinを指定したfor文★

「初期化」などの部分に直接cinで入力することができます。
  
#include<iostream>
using namespace std;

int main(void){
    int input;

    for( ; input != 1; cin >> input){
        cout << "1を入力すると終わり : ";
    }
    return 0;
}

【解説】
  意味のないプログラムですが、他のプログラムに組み合わせて
  使ってください。
  1を入力するまで入力を繰り返すプログラムです。

  「更新」の部分でcinを使っています。
  こうすると、ループの最後に毎回入力をすることになります。
  ループの最後にcinを書いて、「更新」を空にしても構いません。

  このように、他と区別なく入力をすることができます。

********************************
★まとめ★

「初期化」「条件」「更新」の役割についてまとめておきます。

  /////////////////////////
  / 「初期化」 ループの初めに一度だけ行う文。 /
  /                       /
  / 「条件」  ループの繰り返し条件      /
  /                       /
  / 「更新」  ループの最後に毎回行う文。   /
  /////////////////////////

ということができます。
これを頭に入れておけば、通例にこだわらずに
自由にプログラミングできるでしょう。


「更新はインクリメント・・・」などと決めつけないことが大事です。

********************************
★予告★

・ループのネストについて学習します。

********************************






********************************


講読解除はこちら

http://members.tripod.co.jp/mukun_mmg/mmg/cpp.html

バックナンバーはこちら
http://members.tripod.co.jp/mukun_mmg/mmg/cpp.html

内容について質問やご意見など
smukun@hotmail.com

筆者のWebサイト(むーくんの理学的なんでも講座)
http://members.tripod.co.jp/mukun_mmg/

************************************

前のページ   後のページ   目次へ

[PR]湘南美容外科で働きませんか?:全国19院。医師、看護師ほか募集中